The use of configurable integrated circuits (“ICs”) has dramatically increased in recent years. One example of a configurable IC is a field programmable gate array (“FPGA”). An FPGA is a field programmable IC that often has logic circuits, interconnect circuits, and input/output (“I/O”) circuits. The logic circuits (also called logic blocks) are typically arranged as an internal array of repeated arrangements of circuits. These logic circuits are typically connected together through numerous interconnect circuits (also called interconnects). The logic and interconnect circuits are often surrounded by the I/O circuits.
These ICs implement a user design. In order to implement the user design, the ICs must be configured. A configuration must be defined before it can be implemented on an IC with configurable components. The process for defining a configuration requires determining that particular components are part of one set of circuits that constitute a path for data and not another set of circuits that constitute a different path for data. This determination is, however, performed without regard to the amount of data flow that would be blocked by assigning the component to a particular path.